from wtforms import Form

from web.control.error.error_code import ParameterException


class BaseForm(Form):
    def __init__(self, data):
        """
        重写Form模型的构造方法，新增data字段方便返回所需的报错信息

        :param data: 报错信息或其他提示性信息
        :type data str，list，dict，set都可
        """
        super(BaseForm, self).__init__(data=data)

    def validate_error_message(self):
        """
        重写校验方法，实现当出现报错时，抛出异常并返回相应信息给前端

        :return:有异常则抛出异常，无异常则无返回值
        """
        message = super(BaseForm, self).validate()
        if not message:
            raise ParameterException(msg=self.errors)